Self-Attention
# Tag:
- Source/KU_ML2
Self-Attention
input간의 관계성을 알아내기 위하여 input 자신에게 Attention을 주는 기법.
- Query: 비교하고자 하는 대상 vector.
- Key: Query와 cosine similarity를 계산해 그 연관성을 계산하기 위한 vector.
- attention weights: , 차원의 루트(곧 Variance를 의미함)만큼 나누어주는 스케일링 작업으로 inner product값이 너무 과하게 커지지 않도록 한다. (Scaled dot-product attention)
- Value: Query와 Key의 inner product를 통한 Cosine similarity를 바탕으로 한 attention weights의 비중에 따라 사용된 value.
- Contect Vector:
이는 결국, 각 데이터 에 대한 Matrix 연산으로 변하게 된다.
각 데이터 instance에 대해 독립적으로 계산되므로, 병렬 처리가 가능해 GPU에서 Context Matrix를 한번에 계산 가능하다.
Why?
기존의 Attention 방식은 source input과 target output간의 의미 있는 연관성을 찾아주기 위해 사용된다.
반면, Self-attention은 source input내에서 연관성을 계산하는데, 이는 입력된 sequence 내에서 input들 간 서로 얼마나 관련이 있는지 확인하는 것이다.